"""
四大基本数据结构
1.列表（List）
create
    append
    + 和 +=
    * 和 *=
    insert
retrieve
    索引取值
    切片取值
    index
update
    索引赋值
    切片赋值
delete
    pop()
    clear()
sort()  # list自身的方法
sorted()  # 内置的函数
reverse()

2.元组（Tuple）
create
    无
retrieve
    索引取值
    index
    切片
update
    无
delete
    无

3.字典（Dict）
create
    键值对赋值
    update
    setdefault
retrieve
    键值对访问
    get方法  # 不会报错
    keys()
    values()
    items()
update
    键值对赋值
    update
delete
    pop(key)
    popitem()
    clear()

4.集合（Set）
create
    add
retrieve
    运算符in
update
    update
    union
delete
    remove 和discard
    pop()
"""


# list
a_1 = [1]
a_1.append(2)  # 增加元素
a_1.append('a')  # 增加元素
print(a_1)
a_2 = [{'x': 1, 'y': 2, 'z': 3}, (3, 4), 5]
a_3 = a_1 + a_2  # 拼接 +
print(a_3)
a_1 += a_2  # 相当于extend接口
print(a_1)
a_1.insert(0, 'chenlidong')  # 在指定位置插入元素
print(a_1)
print(a_1[4])  # 索引取值
print(a_1[2:5])
print(a_1.index('chenlidong'))
a_1[0] = 'spiderchen'  # 索引赋值
print(a_1)
x = a_1.pop()  # 从末尾删除元素并返回
print(x)
print(a_1)
a_4 = [2, 5, 3, 4, 8, 7]
a_4.sort()
print(a_4)
a_5 = [2, 5, 1, 3, 4, 8, 7]
a_6 = sorted(a_5)
print(a_6)
print(a_5)
a_5.reverse()
print(a_5)


print('----------------------')
# tuple
b = (1.2, 'abc', 1, (1, 2))
print(b[3])
print(b[0:2])
print(b.index(1))

print('----------------------')
# dict
c = {'a': 1, 'b': 2, 'c': 3, 'e': 5}
c['d'] = 4
print(c)
c.update({'f': 6, 'g': 7})
print(c)
print(c.setdefault('a', 100))
print(c.get('e'))
print(c.keys())
print(c.values())
print(c.items())
c['a'] = 100
c.update({'b': 200, 'c': 300})
print(c)
print(c.pop('a'))
print(c.popitem())

print('----------------------')
# set
d = {'a'}
print(d)
d.add('b')
print(d)
print('a' in d)
d.update({1, 2, 3})
d_2 = {(1, 2), '[2, 4, 6]'}
print(d_2)
print(d.union(d_2))
print(d)
d.remove('a')
print(d)
d.pop()
print(d)